OpenResFile( Home & "resources"); 
	DefConst ( 'kExtnIcon, GetPICTAsBits ( "ExtenIcon", true ) );
CloseResFile();

//DefConst ( 'k_ExtrasAbout, GetLayout("extrasAbout") );

DefConst ( 'k_AuthorNameString, "Les R. Titze" );
DefConst ( 'k_CopyrightString, LocObj ( " 1995, 1997 Netstrategy Software", 'extrasSlip.copyString ) );

constant kPartName := LocObj ( "EnRoute internet", 'extrasSlip.partName );

SetPartFrameSlot ( 'icon, kExtnIcon );
SetPartFrameSlot ( 'text, kPartName );
SetPartFrameSlot ( 'closeControl, true );
SetPartFrameSlot ( 'TapAction, func()
	begin
	local pkg := LFetch ( GetPackages(), kPartName, 0, '|str=|, 'title );
	local pkgE := GetPackageEntry ( kPartName, pkg.store );
	local info := GetPkgRefInfo(pkgE.pkgRef);

	local s := LongDateStr ( info.creationdate, (ROM_datetimestrspecs).yearMonthDayStrSpec );

	local s :=
		LocObj ( "Created:", 'extrasSlip.created )
		&& LongDateStr ( info.creationdate, (ROM_datetimestrspecs).yearMonthDayStrSpec )
			& unicodeCR
		& LocObj ( "Author:", 'extrasSlip.author )
		&& k_AuthorNameString & unicodeCR
		& k_CopyrightString & unicodeCR;

	local a := BuildContext (
		{
	    _proto: @180,
	    viewJustify: 80,
	    viewBounds: SetBounds ( 0, 0, 206, 85 ),	// was 125 rather than 85
	    stepChildren: [
	      { _proto: @229,
	        title: kPartName && kVersion,
	        },
	      { _proto: @218,
	        text: s,
	        viewJustify: 240,
	        viewBounds: SetBounds(5, 22, -5, -5),
	        viewFont: @100,
	        },
			],
		} );

	a:Open();

	return nil;
	end );

partData := {
	author:			k_AuthorNameString,	// "Les R. Titze",
	copyright:		k_CopyrightString,	// " 1995, 1997 Netstrategy Software Inc.",
	};

DefConst ( 'kInstallFreezerFunc, func()
	begin
	local pkgRef := GetGlobalVar ( '|EnRoute:FreezerFunc:PkgRef| );

	UnDefGlobalVar ( '|EnRoute:FreezerFunc:CallMe| );
	UnDefGlobalVar ( '|EnRoute:FreezerFunc:PkgRef| );

	// LRT - 96/12/13 4:56 AM
	// WAS:
	//SafeFreezePackageQT ( pkgRef );
	// NEW:
	SafeFreezePackage ( pkgRef );

	end );


DefConst ( 'kImportDisabledFunc, func ( theNotifMsg )
	begin
	local pkg := LFetch ( GetPackages(), kPartName, 0, '|str=|, 'title );
	if not pkg then return;

	local pkgE := GetPackageEntry ( kPartName, pkg.store );
	if not pkgE then return;

	if kDebugOn then print ( "Deferred ImportDisabled" );

	try
		local pkgRef := pkgE.pkgRef;
		local tempJunk := ClassOf ( pkgRef );

		local notifMsg := theNotifMsg;
		DefGlobalVar ( '|EnRoute:FreezerFunc:CallMe|, EnsureInternal(kInstallFreezerFunc) );
		DefGlobalVar ( '|EnRoute:FreezerFunc:PkgRef|, pkgRef );

		AddDelayedCall ( func()
			begin
			if kDebugOn then print ( "Delayed ImportDisabled" );
			local skipFreeze;
			try
				local pkg := LFetch ( GetPackages(), kPartName, 0, '|str=|, 'title );
				if not pkg then return;

				local pkgE := GetPackageEntry ( kPartName, pkg.store );
				if not pkgE then return;

				local pkgRef := pkgE.pkgRef;

				if not GetGlobalVar ( '|EnRoute:FreezerFunc:PkgRef| ) = pkgRef
				or not IsFunction (GetGlobals().|EnRoute:FreezerFunc:CallMe|) then
					begin
					UnDefGlobalVar ( '|EnRoute:FreezerFunc:CallMe| );
					UnDefGlobalVar ( '|EnRoute:FreezerFunc:PkgRef| );
					return;
					end;

			onexception |evt.ex| do
				begin
				UnDefGlobalVar ( '|EnRoute:FreezerFunc:CallMe| );
				UnDefGlobalVar ( '|EnRoute:FreezerFunc:PkgRef| );
				skipFreeze := true;
				end;

			if not skipFreeze then
				begin
				AddDelayedCall ( func()
					begin
					try
						if not GetGlobalVar ( '|EnRoute:FreezerFunc:PkgRef| ) then return;
						if IsFunction (GetGlobals().|EnRoute:FreezerFunc:CallMe|) then
							GetGlobals():|EnRoute:FreezerFunc:CallMe|();
					onexception |evt.ex| do	// nil;
						begin
						UnDefGlobalVar ( '|EnRoute:FreezerFunc:CallMe| );
						UnDefGlobalVar ( '|EnRoute:FreezerFunc:PkgRef| );
						if kDebugOn then
							begin
							printdepth := 4;
							write ( "\nException calling delayed freezer: " );
							print ( CurrentException() );
							printdepth := 0;
							end;
						end;
					end, [], 1 );

				AddDelayedSend ( GetRoot(), 'Notify, [ kNotifyAlert, kAppName, notifMsg ], 250 );
				end;
			end, [], 250 );
	onexception |evt.ex| do	// nil;
		begin
		UnDefGlobalVar ( '|EnRoute:FreezerFunc:CallMe| );
		UnDefGlobalVar ( '|EnRoute:FreezerFunc:PkgRef| );
		if kDebugOn then
			begin
			printdepth := 4;
			write ( "\nException in Deferred ImportDisabled: " );
			print ( CurrentException() );
			printdepth := 0;
			end;
		end;

	end );

DefConst ( 'kFrozenDisabledMsg, ParamStr ( 
	LocObj ( "The EnRoute Core was removed so the ^0 transport had to be disabled.\n\nReinstall the EnRoute Core and then tap on the ^0 icon to enable it.",
		'errors.frozen ),
	[ kPartName ] ) );

SetPartFrameSlot ( 'ImportDisabled, func ( unitName, majorVersion, minorVersion )
	begin
	if kDebugOn then print ( "ImportDisabled" );

	try
		if not unitName = kERCoreUnit then return;

		local notifyMsg := EnsureInternal ( kFrozenDisabledMsg );
		local disableFn := EnsureInternal ( kImportDisabledFunc );

		AddDelayedCall ( disableFn, [ notifyMsg ], 500 );

	onexception |evt.ex| do nil;
	end );
